#pragma once
#include "Data_SP.h"
#include "CurvedPathPlanner.h"

class GeoGraFillPath
{

public:
	Pathdata GraFillPath_UniformLattice(std::vector<Points> grids, std::vector<Faces> allfaces, double pathwidth, double interpwith, double xlen, double ylen, double alpha);
	Pathdata GraFillPath_GradientLattice(std::vector<Points> grids, std::vector<Faces> allfaces, double pathwidth, double interpwith, double xlen, double ylen, double alpha, double lam, vector<double> rhofield);
	Pathdata GraFillPath_DoubleWalled(std::vector<Points> grids, std::vector<Faces> allfaces, double pathwidth, double interpwith, double LT);
	Pathdata GraFillPath_HybridWalled(std::vector<Points> grids, std::vector<Faces> allfaces, double pathwidth, double interpwith, double LT);
	void OutPutPath(string filename);

private:
	std::vector<CurvedPathPlanner::GradientFillingPathPlanning> pathplanner_gra;
};